package com.tarzan.edu.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.tarzan.edu.entity.EduSubject;
import com.tarzan.edu.entity.request.EduSubjectReq;
import com.tarzan.edu.entity.response.EduSubjectResp;
import com.tarzan.edu.entity.response.TreeEduSubject;

import java.util.List;

/**
 * @author liujinshan
 * @title: IEduSubjectService
 * @projectName com.tarzan.edu.service
 * @description: TODO
 * @date 2021/5/25 16:50
 */
public interface IEduSubjectService extends IService<EduSubject> {

    /** @title insert
     * @description TODO 新增课程分类信息
     * @param eduSubject
     * @return com.tarzan.common.core.base.BaseResponse
     * @throws
     * @author liujinshan
     * @data 2021/5/21 15:52
     */
    void insert(EduSubject eduSubject);

    /** @title update
     * @description TODO 修改课程分类信息
     * @param eduSubject
     * @return com.tarzan.common.core.base.BaseResponse
     * @throws
     * @author liujinshan
     * @data 2021/5/21 15:59
     */
    void update(EduSubject eduSubject);

    /** @title delete
     * @description TODO 删除课程分类信息
     * @param id
     * @return com.tarzan.common.core.base.BaseResponse
     * @throws
     * @author liujinshan
     * @data 2021/5/21 16:01
     */
    void delete(String id);

    /**
     * @description 获取课程分类信息列表并分页
     * @author liujinshan
     * param eduTeacherReq
     * @return com.tarzan.common.core.base.BaseResponse
     * @throws
     * @date 2021-5-23 14:43
     */
    IPage<EduSubjectResp> findSubjectPageInfo(EduSubjectReq eduSubjectReq);


    /**
     * @description 根据id查询课程分类信息相细信息
     * @author liujinshan
     * param id
     * @return
     * @throws
     * @date 2021-5-23 14:51
     */
    EduSubjectResp findSubjectById(String id);

    /**
     * @title findTreeEduSubject
     * @description TODO
     * @param 
     * @return com.tarzan.edu.entity.response.TreeEduSubject 
     * @author liujinshan
     * @data 2021/6/18 16:49
     */
    List<TreeEduSubject> findTreeEduSubject();
}
